package com.xintai.approval.service;

import com.xintai.approval.domain.FlowBasicinfo;
import com.xintai.approval.domain.NodeConfig;
import com.xintai.approval.domain.NodeUser;

import java.util.List;


public interface NodeConfigService {
    /**
     * 获取开始
     * @param flowId
     * @return
     */
    NodeConfig getStart(Long flowId);

    /**
     * 获取下一级
     * @param flowId
     * @return
     */
    NodeConfig selectNodeConfig(Long flowId);

    /**
     * 增加流程
     * @param nodeConfig
     */
    void addNodeConfig(NodeConfig nodeConfig);
    /**
     * 修改上级关联下级id
     * @param id
     * @param childNodeId
     */
    void upDataNodeConfig(Long id, Long childNodeId);

    /**
     * 修改条件关联下级id
     * @param id
     * @param conditionNodesId
     */
    void upDataNodeConfigCondition(Long id, String conditionNodesId);

    /**
     * 修改用户
     * @param id
     * @param nodeUserListIds
     */
    void upDataNodeUserId(Long id, String nodeUserListIds);

    /**
     * 多个条件
     * @param id
     * @param conditionListIds
     */
    void upDataConditionListIds(Long id, String conditionListIds);

    /**
     * 路由下的条件
     * @param ConditionNodesId
     * @return
     */
    List<NodeConfig> SelectConditionNodes(Long ConditionNodesId);

    /**
     * 节点用户
     * @return
     */
    List<NodeUser> SelectNodeUserList(Long nodeUserListId);

    /**
     * 添加流程
     * @param flowBasicinfo
     * @return
     */
    int insertNodeConfig(FlowBasicinfo flowBasicinfo);

    /**
     * 查询流程
     * @param flowBasicinfo
     * @return
     */
    public FlowBasicinfo selectNodeConfig(FlowBasicinfo flowBasicinfo);
}
